package ricardotavares.util.arquivo;

import java.io.*;
import javax.swing.JOptionPane;

/**
 *
 * @author Ricardo
 */
public class Arquivos
{

    /**
     * Ler um objeto JavaInfo gravado anteriormente.
     *
     * @return            Objeto JavaInfo gravado antes.
     * @author            Ricardo Tavares
     */
    public JavaInfo read() {
        try {
            File arq = new File(System.getProperty("user.dir") + "\\JavaInfo.txt");
            FileInputStream x = new FileInputStream(arq);
            ObjectInputStream y = new ObjectInputStream(x);

            JavaInfo javaInfo = (JavaInfo) y.readObject();

            return javaInfo;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Ops! Erro ao ler o arquivo\n", "Erro", JOptionPane.ERROR_MESSAGE);
        }
        return null;
    }

    /**
     * Grava um objeto JavaInfo na mesma pasta que o programa esta rodando.
     * 
     *@param             Objeto JavaInfo que será gravando.
     * @return            true caso grave e false caso não consiga grava.
     * @author            Ricardo Tavares
     */
    public boolean write(JavaInfo javainfo) {
        try {
            File arq = new File(System.getProperty("user.dir")+"\\JavaInfo.txt");
            ObjectOutputStream x = new ObjectOutputStream(new FileOutputStream(arq));
            x.writeObject(javainfo);
            x.close();
            JOptionPane.showMessageDialog(null, " As informações foram registradas com sucesso! ", "Mensagem", JOptionPane.INFORMATION_MESSAGE);
            return true;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Ops! Erro durante a gravação do Arquivo."+e, "Erro", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
}

